package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
)

func main() {
	conn, err := net.Dial("tcp", "127.0.0.1:20000")
	if err != nil {
		fmt.Println("dial network error:", err)
		return
	}
	defer conn.Close() // 关闭链接
	inputReader := bufio.NewReader(os.Stdin)
	for {
		// 读取用户输入 =》 换行
		input, _ := inputReader.ReadString('\n')
		// 去除用户的换行
		inputInfo := strings.Trim(input, "\r\n")

		if strings.ToLower(inputInfo) == "q" {
			// 如果用户输入了 q， 则退出程序
			return
		}
		// 发送数据
		_, err = conn.Write([]byte(inputInfo))
		if err != nil {
			return
		}
		buf := [512]byte{}
		n, err := conn.Read(buf[:])
		if err != nil {
			fmt.Println("recv failed err:", err.Error())
			return
		}
		fmt.Println(string(buf[:n]))
	}
}
